package com.napenalki.toto.service;

import java.util.List;

import com.napenalki.toto.domain.Event;
import com.napenalki.toto.domain.Match;
import com.napenalki.toto.domain.SpecialEvent;
import com.napenalki.toto.domain.SpecialEvents;
import com.napenalki.toto.domain.Stages;

public interface EventService {

    public SpecialEvent addSpecialEvent(SpecialEvent event);

    public Match addMatch(Match match);

    public SpecialEvent findSpecialEvendById(int eventId);

    public Match findMatchById(int matchId);

    public List<SpecialEvent> findAllSpecialEvents();

    public List<Match> findAllMatches();

    public SpecialEvent findSpecialEventByType(SpecialEvents eventType);

    public List<Match> findMatchesByTeam(String teamName);

    public List<Match> findCompletedGroupStageMatchesByTeam(String teamName);

    public List<Match> findMatchesByStage(Stages stage);

    public Match findMatchByTeamsAndStage(String team1Name, String team2Name,
            Stages stage);

    public List<SpecialEvent> findAllFinishedSpecialEvents();

    public List<SpecialEvent> findAllGroupWinnerSpecialEvents();

    public List<SpecialEvent> findAllNonGroupWinnerSpecialEvents();

    public List<Match> findAllFinishedMatches();

    public List<Match> findMatchesByDate(int year, int month, int day);

    public SpecialEvent updateSpecialEvent(SpecialEvent event);

    public Match updateMatch(Match match);

    public void deleteSpecialEvent(SpecialEvent specialEvent);

    public void deleteMatch(Match match);

    public Event stopPredictions(Event event);

}
